Many biometric identity recognition systems identify a user of a compute device from an image of the user's face. Face recognition systems are widely applied, ranging from establishment security, automatic teller machine (ATM) security, passport and visa verifications, to protecting mobile phones and other personal items from unauthorized users. Many of these applications are implemented on resource constrained embedded hardware platforms. A drawback of typical systems is that changes in lighting from one image of the person to another may result in misidentification of the person. Another drawback of such systems is that they typically are affected by facial expression changes. As such, a typical system may misidentify a person when the locations of portions of the person's face have changed relative to each other as a result of a facial expression (e.g., a smile) other than the expression that the system was trained on. Such systems may also misidentify a person when an object, such as a hat, goggles, or hair, partially covers a portion of the person's face. Further, many facial recognition systems are relatively compute intensive, making them particularly taxing on resource constrained devices, such as edge devices of a network.